Merge branch 'dev' of http://47.109.205.240:3000/Web/daimp-front into dev
This commit is contained in:
commit
72f6122d4f
@ -24,10 +24,53 @@ export function editBuiness(data = {}) {
|
||||
}
|
||||
|
||||
export function delBuiness(params = {}) {
|
||||
return request('/product-businesse/business/deleteBusiness', {
|
||||
return request('/product-business/business/deleteBusiness', {
|
||||
method: 'DELETE',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
// #endregion
|
||||
|
||||
/* 经营主体审核相关 */
|
||||
export function getBuinesCheckList(params = {}) {
|
||||
return request('/product-business/business/businessCheckPage', {
|
||||
method: 'GET',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function doBusinessCheck(data = {}) {
|
||||
return request('/product-business/business/businessCheck', {
|
||||
method: 'PUT',
|
||||
data,
|
||||
});
|
||||
}
|
||||
|
||||
export function exportBusinessCheck(params = {}) {
|
||||
return request('/product-business/business/businessCheckExport', {
|
||||
method: 'GET',
|
||||
params,
|
||||
responseType: 'blob',
|
||||
});
|
||||
}
|
||||
|
||||
// #endregion
|
||||
|
||||
/* 经营主体审核历史相关 */
|
||||
export function getBuinesCheckRecord(params = {}) {
|
||||
return request('/product-business/business/businessCheckLogPage', {
|
||||
method: 'GET',
|
||||
params,
|
||||
});
|
||||
}
|
||||
|
||||
export function exportBusinessCheckRecord(params = {}) {
|
||||
return request('/product-business/business/businessCheckLogExport', {
|
||||
method: 'GET',
|
||||
params,
|
||||
responseType: 'blob',
|
||||
});
|
||||
}
|
||||
|
||||
// #endregion
|
||||
|
@ -43,7 +43,7 @@
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { reactive, ref } from 'vue';
|
||||
import { computed, reactive, ref } from 'vue';
|
||||
import { useApp } from '@/hooks';
|
||||
import { CRUD_OPTIONS, pageData } from '@/config';
|
||||
import { isEmpty, downloadFile } from '@/utils';
|
||||
@ -58,7 +58,7 @@ const crudRef = ref(null);
|
||||
|
||||
let timeVal = ref([]);
|
||||
const searchCondition = ref({
|
||||
businessType: '',
|
||||
businessType: null,
|
||||
businessId: '',
|
||||
productType: '', //产品类型
|
||||
createStartTime: '',
|
||||
@ -66,7 +66,15 @@ const searchCondition = ref({
|
||||
primaryProduct: '',
|
||||
});
|
||||
|
||||
const labelProp = ref({});
|
||||
// :0->个体,1->村集体,2->合作社,3->企业
|
||||
const column0 = [];
|
||||
|
||||
const column1 = [];
|
||||
|
||||
const column2 = [];
|
||||
|
||||
const column3 = [];
|
||||
|
||||
const state = reactive({
|
||||
loading: false,
|
||||
form: {},
|
||||
@ -87,6 +95,8 @@ const state = reactive({
|
||||
width: '80px',
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
span: 24,
|
||||
props: {
|
||||
label: 'dictLabel',
|
||||
@ -116,6 +126,8 @@ const state = reactive({
|
||||
width: '160px',
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
search: true,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
@ -126,6 +138,8 @@ const state = reactive({
|
||||
width: '120px',
|
||||
remote: false,
|
||||
search: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
props: {
|
||||
label: 'dictLabel',
|
||||
value: 'dictValue',
|
||||
@ -148,6 +162,8 @@ const state = reactive({
|
||||
width: '120px',
|
||||
showOverflowTooltip: true,
|
||||
search: false,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
rules: {
|
||||
required: true,
|
||||
message: '请输入',
|
||||
@ -160,6 +176,28 @@ const state = reactive({
|
||||
search: false,
|
||||
width: '200px',
|
||||
labelWidth: '160px',
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '规模',
|
||||
prop: 'villageCount',
|
||||
search: false,
|
||||
width: '200px',
|
||||
labelWidth: '160px',
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '负责人',
|
||||
prop: 'headName',
|
||||
search: false,
|
||||
width: '200px',
|
||||
labelWidth: '160px',
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
@ -170,8 +208,8 @@ const state = reactive({
|
||||
width: '200px',
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
addDisplay: true,
|
||||
editDisplay: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
search: true,
|
||||
props: {
|
||||
label: 'areaName',
|
||||
@ -191,6 +229,8 @@ const state = reactive({
|
||||
search: false,
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
@ -198,11 +238,9 @@ const state = reactive({
|
||||
prop: 'phone',
|
||||
width: '160px',
|
||||
search: false,
|
||||
rules: {
|
||||
required: true,
|
||||
message: '请输入',
|
||||
trigger: 'blur',
|
||||
},
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '审核状态',
|
||||
@ -288,6 +326,199 @@ const state = reactive({
|
||||
search: true,
|
||||
},
|
||||
],
|
||||
group: [
|
||||
{
|
||||
label: '基本信息>',
|
||||
prop: 'caseInfo',
|
||||
column: [
|
||||
{
|
||||
label: '主体代码',
|
||||
prop: 'taskCode',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '主体名称',
|
||||
prop: 'taskCode',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '主体类型',
|
||||
prop: 'businessType',
|
||||
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¤t=1&size=10`,
|
||||
dicHeaders: {
|
||||
authorization: UserStore.token,
|
||||
},
|
||||
dicFormatter: (res) => res.data.records ?? [],
|
||||
rules: { required: true, message: '请选择', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '经营产品种类',
|
||||
prop: 'productType',
|
||||
type: 'select',
|
||||
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: '主要产品',
|
||||
prop: 'product',
|
||||
rules: { required: false, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '规模',
|
||||
prop: 'villageCount',
|
||||
rules: { required: false, message: '请选择', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '负责人',
|
||||
prop: 'headName',
|
||||
rules: { required: false, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '负责人电话',
|
||||
prop: 'phone',
|
||||
rules: { required: false, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '联系地址',
|
||||
prop: 'addressCode',
|
||||
type: 'cascader',
|
||||
checkStrictly: false,
|
||||
width: '200px',
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
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) => res.data ?? [],
|
||||
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||
},
|
||||
{
|
||||
label: '详细地址',
|
||||
prop: 'detailAddress',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '营业执照>',
|
||||
prop: 'caseInfo',
|
||||
column: [
|
||||
{
|
||||
label: '统一社会信用代码',
|
||||
prop: 'notes',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '营业执照',
|
||||
prop: 'license',
|
||||
},
|
||||
{
|
||||
label: '有效期至',
|
||||
prop: 'operationDate',
|
||||
type: 'date',
|
||||
format: 'YYYY-MM-DD',
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
width: 200,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '经营项目',
|
||||
prop: 'inspectionSituation',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '经营许可证>',
|
||||
prop: 'caseInfo',
|
||||
column: [
|
||||
{
|
||||
label: '经营许可证编号',
|
||||
prop: 'operationType',
|
||||
rules: { required: false, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '经营许可证',
|
||||
prop: 'permit',
|
||||
rules: { required: false, message: '请选择', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '有效期至',
|
||||
prop: 'operationDate',
|
||||
type: 'date',
|
||||
format: 'YYYY-MM-DD',
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
width: 200,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '审核操作>',
|
||||
prop: 'caseInfo',
|
||||
column: [
|
||||
{
|
||||
label: '是否通过',
|
||||
prop: 'isIllegal',
|
||||
span: 24,
|
||||
display: true,
|
||||
type: 'radio',
|
||||
editDisplay: true,
|
||||
addDisplay: false,
|
||||
dicData: [
|
||||
{
|
||||
label: '是',
|
||||
value: '1',
|
||||
},
|
||||
{
|
||||
label: '否',
|
||||
value: '0',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '审核意见',
|
||||
prop: 'note',
|
||||
type: 'textarea',
|
||||
span: 24,
|
||||
minRows: 3, // 设置最小行数
|
||||
maxRows: 5, // 设置最大行数
|
||||
overHidden: true,
|
||||
width: 200,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
actions: [
|
||||
{
|
||||
name: '详情',
|
||||
@ -398,8 +629,8 @@ const rowSave = (row, done, loading) => {
|
||||
|
||||
// 编辑
|
||||
const rowEdit = (row) => {
|
||||
row.addressCode = row.provinceCode + ',' + row.cityCode + ',' + row.countyCode + ',' + row.townCode;
|
||||
console.info('编辑', row);
|
||||
// row.addressCode = row.provinceCode + ',' + row.cityCode + ',' + row.countyCode + ',' + row.townCode;
|
||||
// console.info('编辑', row);
|
||||
crudRef.value.rowEdit(row);
|
||||
};
|
||||
|
||||
|
@ -43,6 +43,7 @@ import {
|
||||
getAddrCropByLand,
|
||||
importOperationRecord,
|
||||
} from '@/apis/land';
|
||||
import { getBuinesCheckList, doBusinessCheck, exportBusinessCheck } from '@/apis/productOperateMain';
|
||||
|
||||
const { VITE_APP_BASE_API } = import.meta.env;
|
||||
const app = useApp();
|
||||
|
@ -1,5 +1,556 @@
|
||||
<template>
|
||||
<div></div>
|
||||
<div class="custom-page">
|
||||
<avue-crud
|
||||
ref="crudRef"
|
||||
v-model="state.form"
|
||||
v-model:search="state.query"
|
||||
v-model:page="state.pageData"
|
||||
:table-loading="state.loading"
|
||||
:data="state.data"
|
||||
:option="state.options"
|
||||
@refresh-change="refreshChange"
|
||||
@search-reset="searchChange"
|
||||
@search-change="searchChange"
|
||||
@selection-change="selectionChange"
|
||||
@current-change="currentChange"
|
||||
@size-change="sizeChange"
|
||||
>
|
||||
<template #menu-left>
|
||||
<el-button type="success" icon="download" @click="onExport">导出</el-button>
|
||||
</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">
|
||||
<custom-table-operate :actions="state.options.actions" :data="scope" />
|
||||
</template> -->
|
||||
</avue-crud>
|
||||
</div>
|
||||
</template>
|
||||
<script setup></script>
|
||||
<style></style>
|
||||
<script setup>
|
||||
import { reactive, ref } from 'vue';
|
||||
import { useApp } from '@/hooks';
|
||||
import { CRUD_OPTIONS } from '@/config';
|
||||
import { isEmpty, downloadFile } from '@/utils';
|
||||
import { useUserStore } from '@/store/modules/user';
|
||||
import {
|
||||
getOperationRecord,
|
||||
saveOperationRecord,
|
||||
editOperationRecord,
|
||||
delOperationRecord,
|
||||
exportOperationRecord,
|
||||
getAddrCropByLand,
|
||||
importOperationRecord,
|
||||
} from '@/apis/land';
|
||||
import { getBuinesCheckRecord, exportBusinessCheckRecord } from '@/apis/productOperateMain';
|
||||
|
||||
const { VITE_APP_BASE_API } = import.meta.env;
|
||||
const app = useApp();
|
||||
const UserStore = useUserStore();
|
||||
const crudRef = ref(null);
|
||||
|
||||
const jobTypeOptions = reactive([
|
||||
{ label: '蔬菜', value: '0' },
|
||||
{ label: '水果', value: '1' },
|
||||
]);
|
||||
|
||||
const bTypeOptions = reactive([
|
||||
{ label: '个体', value: '0' },
|
||||
{ label: '村集体', value: '1' },
|
||||
{ label: '合作社', value: '2' },
|
||||
{ label: '企业', value: '3' },
|
||||
]);
|
||||
|
||||
const auditStatusOptions = reactive([
|
||||
{ label: '待审核', value: '0' },
|
||||
{ label: '已通过', value: '1' },
|
||||
{ label: '已拒绝', value: '2' },
|
||||
]);
|
||||
|
||||
const productTypeOptions = reactive([
|
||||
{ label: '蔬菜', value: '0' },
|
||||
{ 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({
|
||||
loading: false,
|
||||
query: {
|
||||
current: 1,
|
||||
size: 10,
|
||||
},
|
||||
form: {},
|
||||
selection: [],
|
||||
options: {
|
||||
...CRUD_OPTIONS,
|
||||
addBtnText: '添加',
|
||||
addBtn: false,
|
||||
searchLabelWidth: '120px',
|
||||
searchSpan: 8,
|
||||
searchGutter: 100,
|
||||
searchMenuPosition: 'center',
|
||||
column: [
|
||||
{
|
||||
label: '主体类型',
|
||||
prop: 'businessType',
|
||||
type: 'radio',
|
||||
search: true,
|
||||
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¤t=1&size=10`,
|
||||
dicHeaders: {
|
||||
authorization: UserStore.token,
|
||||
},
|
||||
dicFormatter: (res) => res.data.records ?? [],
|
||||
rules: { required: true, message: '请选择', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '主体代码',
|
||||
prop: 'id',
|
||||
width: '120px',
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
search: true,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '主体名称',
|
||||
prop: 'businessName',
|
||||
width: '160px',
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
search: true,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '经营产品种类',
|
||||
prop: 'productType',
|
||||
type: 'select',
|
||||
width: '120px',
|
||||
remote: false,
|
||||
search: true,
|
||||
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 ?? [],
|
||||
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||
},
|
||||
{
|
||||
label: '主要经营产品',
|
||||
prop: 'primaryProduct',
|
||||
width: '120px',
|
||||
showOverflowTooltip: true,
|
||||
search: false,
|
||||
rules: {
|
||||
required: true,
|
||||
message: '请输入',
|
||||
trigger: 'blur',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '统一信用代码/证件号码',
|
||||
prop: 'idCard',
|
||||
search: false,
|
||||
width: '200px',
|
||||
labelWidth: '160px',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '联系地址',
|
||||
prop: 'addressCode',
|
||||
type: 'cascader',
|
||||
checkStrictly: false,
|
||||
width: '200px',
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
addDisplay: true,
|
||||
editDisplay: true,
|
||||
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) => res.data ?? [],
|
||||
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||
},
|
||||
{
|
||||
label: '详细地址',
|
||||
prop: 'detailAddress',
|
||||
search: false,
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '联系电话',
|
||||
prop: 'phone',
|
||||
width: '160px',
|
||||
search: false,
|
||||
rules: {
|
||||
required: true,
|
||||
message: '请输入',
|
||||
trigger: 'blur',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '审核状态',
|
||||
prop: 'status',
|
||||
width: '80px',
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
search: false,
|
||||
rules: {
|
||||
required: true,
|
||||
message: '请输入',
|
||||
trigger: 'blur',
|
||||
},
|
||||
},
|
||||
{
|
||||
label: '审核意见',
|
||||
prop: 'remark',
|
||||
addDisplay: false,
|
||||
editDisplay: false,
|
||||
width: '200px',
|
||||
ellipsis: true,
|
||||
showOverflowTooltip: true,
|
||||
rules: {
|
||||
required: true,
|
||||
message: '请输入',
|
||||
trigger: 'blur',
|
||||
},
|
||||
},
|
||||
{ label: '创建时间', prop: 'createTime', addDisplay: false, editDisplay: false, search: false },
|
||||
],
|
||||
searchColumn: [
|
||||
{ label: '主体代码', prop: 'landName', search: true },
|
||||
{ label: '主体名称', prop: 'crop', search: true },
|
||||
{
|
||||
label: '经营产品种类',
|
||||
prop: 'productType',
|
||||
type: 'select',
|
||||
width: '120px',
|
||||
remote: false,
|
||||
search: true,
|
||||
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 ?? [],
|
||||
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
|
||||
},
|
||||
{
|
||||
label: '主体类型',
|
||||
prop: 'operationType',
|
||||
type: 'select',
|
||||
search: true,
|
||||
dicData: bTypeOptions,
|
||||
},
|
||||
{
|
||||
label: '创建日期',
|
||||
prop: 'operationDate',
|
||||
type: 'daterange',
|
||||
format: 'YYYY-MM-DD',
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
width: 200,
|
||||
search: true,
|
||||
},
|
||||
],
|
||||
group: [
|
||||
{
|
||||
label: '基本信息>',
|
||||
prop: 'caseInfo',
|
||||
column: [
|
||||
{
|
||||
label: '主体代码',
|
||||
prop: 'taskCode',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '主体名称',
|
||||
prop: 'taskCode',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '主体类型',
|
||||
prop: 'bType',
|
||||
type: 'select',
|
||||
dicData: bTypeOptions,
|
||||
rules: { required: true, message: '请选择', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '经营产品种类',
|
||||
type: 'select',
|
||||
dicData: productTypeOptions,
|
||||
rules: { required: true, message: '请选择', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '主要产品',
|
||||
prop: 'product',
|
||||
rules: { required: false, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '合作社规模',
|
||||
prop: 'inspectionType',
|
||||
rules: { required: false, message: '请选择', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '负责人',
|
||||
prop: 'inspectionTarget',
|
||||
rules: { required: false, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '负责人电话',
|
||||
prop: 'inspectionTarget',
|
||||
rules: { required: false, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '联系地址',
|
||||
prop: 'inspectionTarget',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
type: 'select',
|
||||
props: {
|
||||
label: 'areaName',
|
||||
value: 'areaCode',
|
||||
children: 'areaChildVOS',
|
||||
},
|
||||
dicUrl: `${VITE_APP_BASE_API}/system/area/region?areaCode=530000`,
|
||||
dicHeaders: {
|
||||
authorization: UserStore.token,
|
||||
},
|
||||
dicFormatter: (res) => res.data ?? [],
|
||||
},
|
||||
{
|
||||
label: '详细地址',
|
||||
prop: 'notes',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '营业执照>',
|
||||
prop: 'caseInfo',
|
||||
column: [
|
||||
{
|
||||
label: '统一社会信用代码',
|
||||
prop: 'notes',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '营业执照',
|
||||
prop: 'license',
|
||||
},
|
||||
{
|
||||
label: '有效期至',
|
||||
prop: 'operationDate',
|
||||
type: 'date',
|
||||
format: 'YYYY-MM-DD',
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
width: 200,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '经营项目',
|
||||
prop: 'inspectionSituation',
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '经营许可证>',
|
||||
prop: 'caseInfo',
|
||||
column: [
|
||||
{
|
||||
label: '经营许可证编号',
|
||||
prop: 'operationType',
|
||||
rules: { required: false, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '经营许可证',
|
||||
prop: 'permit',
|
||||
rules: { required: false, message: '请选择', trigger: 'blur' },
|
||||
},
|
||||
{
|
||||
label: '有效期至',
|
||||
prop: 'operationDate',
|
||||
type: 'date',
|
||||
format: 'YYYY-MM-DD',
|
||||
valueFormat: 'YYYY-MM-DD',
|
||||
width: 200,
|
||||
rules: { required: true, message: '请输入', trigger: 'blur' },
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '审核操作>',
|
||||
prop: 'caseInfo',
|
||||
column: [
|
||||
{
|
||||
label: '是否通过',
|
||||
prop: 'isIllegal',
|
||||
span: 24,
|
||||
display: true,
|
||||
type: 'radio',
|
||||
editDisplay: true,
|
||||
addDisplay: false,
|
||||
dicData: [
|
||||
{
|
||||
label: '是',
|
||||
value: '1',
|
||||
},
|
||||
{
|
||||
label: '否',
|
||||
value: '0',
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
label: '审核意见',
|
||||
prop: 'note',
|
||||
type: 'textarea',
|
||||
span: 24,
|
||||
minRows: 3, // 设置最小行数
|
||||
maxRows: 5, // 设置最大行数
|
||||
overHidden: true,
|
||||
width: 200,
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
pageData: {
|
||||
total: 0,
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
data: [],
|
||||
currentRow: {},
|
||||
});
|
||||
|
||||
// 加载
|
||||
const loadData = () => {
|
||||
state.loading = true;
|
||||
getBuinesCheckRecord(state.query)
|
||||
.then((res) => {
|
||||
if (res.code === 200) {
|
||||
const { current, size, total, records } = res.data;
|
||||
state.data = records;
|
||||
state.pageData = {
|
||||
currentPage: current || 1,
|
||||
pageSize: size || 10,
|
||||
total: total,
|
||||
};
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
app.$message.error(err.msg);
|
||||
state.data = [];
|
||||
})
|
||||
.finally(() => {
|
||||
state.loading = false;
|
||||
});
|
||||
};
|
||||
|
||||
loadData();
|
||||
|
||||
// 页数
|
||||
const currentChange = (current) => {
|
||||
state.query.current = current;
|
||||
loadData();
|
||||
};
|
||||
|
||||
// 条数
|
||||
const sizeChange = (size) => {
|
||||
state.query.size = size;
|
||||
loadData();
|
||||
};
|
||||
|
||||
// 搜索
|
||||
const searchChange = (params, done) => {
|
||||
if (done) done();
|
||||
state.query = params;
|
||||
state.query.current = 1;
|
||||
loadData();
|
||||
};
|
||||
|
||||
// 刷新
|
||||
const refreshChange = () => {
|
||||
loadData();
|
||||
app.$message.success('刷新成功');
|
||||
};
|
||||
|
||||
const onExport = () => {
|
||||
if (isEmpty(state.data)) {
|
||||
app.$message.error('当前暂时没有可供导出的数据!');
|
||||
return;
|
||||
}
|
||||
state.loading = true;
|
||||
const fileName = '网格明细表';
|
||||
exportBusinessCheckRecord(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;
|
||||
});
|
||||
};
|
||||
</script>
|
||||
|
@ -81,8 +81,8 @@ const navlist = ref([
|
||||
{ title: '土地资源', name: 'land' },
|
||||
{ title: '投入品', name: 'inputs' },
|
||||
{ title: '生产经营主体', name: 'entities' },
|
||||
{ title: '智慧种植检测', name: 'plant' },
|
||||
{ title: '智慧养殖检测', name: 'breed' },
|
||||
// { title: '智慧种植监测', name: 'plant' },
|
||||
// { title: '智慧养殖监测', name: 'breed' },
|
||||
{ title: '全流程溯源', name: 'trace' },
|
||||
{ title: '产业预警决策', name: 'early' },
|
||||
]);
|
||||
|
@ -47,8 +47,8 @@ const navlist = ref([
|
||||
{ title: '土地资源', name: 'land' },
|
||||
{ title: '投入品', name: 'inputs' },
|
||||
{ title: '生产经营主体', name: 'entities' },
|
||||
{ title: '智慧种植检测', name: 'plant' },
|
||||
{ title: '智慧养殖检测', name: 'breed' },
|
||||
{ title: '智慧种植监测', name: 'plant' },
|
||||
{ title: '智慧养殖监测', name: 'breed' },
|
||||
{ title: '全流程溯源', name: 'trace' },
|
||||
{ title: '产业预警决策', name: 'early' },
|
||||
]);
|
||||
|
@ -6,7 +6,7 @@
|
||||
* @LastEditTime: 2024-03-22 10:11:34
|
||||
*/
|
||||
import 'virtual:svg-icons-register';
|
||||
import { createApp } from 'vue';
|
||||
import { createApp, nextTick } from 'vue';
|
||||
import App from './App.vue';
|
||||
import router from './router';
|
||||
import pinia from './store';
|
||||
@ -31,14 +31,16 @@ initAMapApiLoader({
|
||||
version: '2.0',
|
||||
},
|
||||
AMapUI: {
|
||||
plugins: ['misc/PathSimplifier'],
|
||||
lugins: ['misc/PathSimplifier'],
|
||||
},
|
||||
plugins: ['AMap.MapType', 'AMap.DistrictSearch'],
|
||||
plugins: ['AMap.MapType'],
|
||||
});
|
||||
|
||||
const app = createApp(App);
|
||||
app.use(pinia).use(router).use(ElementPlus).use(Avue).use(VueAMap);
|
||||
registerGlobalComponents(app);
|
||||
registerElIcons(app);
|
||||
registerDirective(app);
|
||||
registerMicroApps(app);
|
||||
nextTick(() => {
|
||||
registerGlobalComponents(app);
|
||||
registerElIcons(app);
|
||||
registerDirective(app);
|
||||
registerMicroApps(app);
|
||||
});
|
||||
|
@ -62,7 +62,7 @@ onMounted(() => {
|
||||
if (chartsData.valData && chartsData.valData.length) {
|
||||
chartsData.valData.forEach((m, index) => {
|
||||
let num = 100;
|
||||
m.value = (Number(m.value) + Math.random() + num).toFixed(2);
|
||||
m.value = (Number(m.value) + Math.random() + num).toFixed(0);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
@ -1,10 +1,13 @@
|
||||
<template>
|
||||
<div class="plant-gs-warp">
|
||||
<div ref="viewwarp" class="plant-gs-content" :style="{ 'background-image': 'url(' + getAssetsFile('images/plant/bg1.png') + ')' }">
|
||||
<el-amap ref="mapRef" :zoom="11" :center="[99.402267, 23.538889]" :mask="yunnan" view-mode="3D" @init="initMap">
|
||||
<el-amap :zoom="11" :center="[99.402267, 23.538889]" ref="mapRef" view-mode="3D">
|
||||
<!-- 带孔洞的四边形 -->
|
||||
<el-amap-layer-satellite :visible="visible" />
|
||||
<el-amap-polygon :path="polygon" :fill-opacity="0.5" fill-color="#748cb7" stroke-color="transparent" />
|
||||
<!-- <el-amap-loca>
|
||||
<el-amap-loca-heatmap :source-url="sourceUrl" :layer-style="layerStyle" />
|
||||
</el-amap-loca> -->
|
||||
</el-amap>
|
||||
</div>
|
||||
</div>
|
||||
@ -34,23 +37,30 @@ const polygon = reactive([
|
||||
]);
|
||||
|
||||
const mapRef = ref(null);
|
||||
const yunnan = ref([]);
|
||||
function initMap(e) {
|
||||
var opts = {
|
||||
subdistrict: 0,
|
||||
extensions: 'all',
|
||||
level: 'province',
|
||||
};
|
||||
var district = new AMap.DistrictSearch(opts);
|
||||
district.search('云南省', function (status, result) {
|
||||
console.log('res', result);
|
||||
var bounds = result.districtList[0].boundaries;
|
||||
for (var i = 0; i < bounds.length; i += 1) {
|
||||
yunnan.value.push([bounds[i]]);
|
||||
}
|
||||
console.log('mask.value', yunnan.value);
|
||||
});
|
||||
}
|
||||
const sourceUrl = ref('https://a.amap.com/Loca/static/loca-v2/demos/mock_data/hz_house_order.json');
|
||||
const layerStyle = ref({
|
||||
radius: 20,
|
||||
unit: 'px',
|
||||
height: 90,
|
||||
// radius: 10,
|
||||
// unit: 'px',
|
||||
// height: 10,
|
||||
gradient: {
|
||||
0.1: 'rgba(50,48,118,1)',
|
||||
0.2: 'rgba(127,60,255,1)',
|
||||
0.4: 'rgba(166,53,219,1)',
|
||||
0.6: 'rgba(254,64,95,1)',
|
||||
0.8: 'rgba(255,98,4,1)',
|
||||
1: 'rgba(236,220,79,1)',
|
||||
},
|
||||
value(index, feature) {
|
||||
return feature.properties.count;
|
||||
},
|
||||
min: 0,
|
||||
max: 10, //4.6
|
||||
heightBezier: [0, 0.53, 0.37, 0.98],
|
||||
});
|
||||
onMounted(() => {});
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.plant-gs-warp {
|
||||
|
Loading…
x
Reference in New Issue
Block a user