diff --git a/sub-government-affairs-service/auto-imports.d.ts b/sub-government-affairs-service/auto-imports.d.ts new file mode 100644 index 0000000..369aad4 --- /dev/null +++ b/sub-government-affairs-service/auto-imports.d.ts @@ -0,0 +1,75 @@ +/* eslint-disable */ +/* prettier-ignore */ +// @ts-nocheck +// noinspection JSUnusedGlobalSymbols +// Generated by unplugin-auto-import +export {} +declare global { + const EffectScope: typeof import('vue')['EffectScope'] + const computed: typeof import('vue')['computed'] + const createApp: typeof import('vue')['createApp'] + const customRef: typeof import('vue')['customRef'] + const defineAsyncComponent: typeof import('vue')['defineAsyncComponent'] + const defineComponent: typeof import('vue')['defineComponent'] + const effectScope: typeof import('vue')['effectScope'] + const getCurrentInstance: typeof import('vue')['getCurrentInstance'] + const getCurrentScope: typeof import('vue')['getCurrentScope'] + const h: typeof import('vue')['h'] + const inject: typeof import('vue')['inject'] + const isProxy: typeof import('vue')['isProxy'] + const isReactive: typeof import('vue')['isReactive'] + const isReadonly: typeof import('vue')['isReadonly'] + const isRef: typeof import('vue')['isRef'] + const markRaw: typeof import('vue')['markRaw'] + const nextTick: typeof import('vue')['nextTick'] + const onActivated: typeof import('vue')['onActivated'] + const onBeforeMount: typeof import('vue')['onBeforeMount'] + const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave'] + const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate'] + const onBeforeUnmount: typeof import('vue')['onBeforeUnmount'] + const onBeforeUpdate: typeof import('vue')['onBeforeUpdate'] + const onDeactivated: typeof import('vue')['onDeactivated'] + const onErrorCaptured: typeof import('vue')['onErrorCaptured'] + const onMounted: typeof import('vue')['onMounted'] + const onRenderTracked: typeof import('vue')['onRenderTracked'] + const onRenderTriggered: typeof import('vue')['onRenderTriggered'] + const onScopeDispose: typeof import('vue')['onScopeDispose'] + const onServerPrefetch: typeof import('vue')['onServerPrefetch'] + const onUnmounted: typeof import('vue')['onUnmounted'] + const onUpdated: typeof import('vue')['onUpdated'] + const onWatcherCleanup: typeof import('vue')['onWatcherCleanup'] + const provide: typeof import('vue')['provide'] + const reactive: typeof import('vue')['reactive'] + const readonly: typeof import('vue')['readonly'] + const ref: typeof import('vue')['ref'] + const resolveComponent: typeof import('vue')['resolveComponent'] + const shallowReactive: typeof import('vue')['shallowReactive'] + const shallowReadonly: typeof import('vue')['shallowReadonly'] + const shallowRef: typeof import('vue')['shallowRef'] + const toRaw: typeof import('vue')['toRaw'] + const toRef: typeof import('vue')['toRef'] + const toRefs: typeof import('vue')['toRefs'] + const toValue: typeof import('vue')['toValue'] + const triggerRef: typeof import('vue')['triggerRef'] + const unref: typeof import('vue')['unref'] + const useAttrs: typeof import('vue')['useAttrs'] + const useCssModule: typeof import('vue')['useCssModule'] + const useCssVars: typeof import('vue')['useCssVars'] + const useId: typeof import('vue')['useId'] + const useLink: typeof import('vue-router')['useLink'] + const useModel: typeof import('vue')['useModel'] + const useRoute: typeof import('vue-router')['useRoute'] + const useRouter: typeof import('vue-router')['useRouter'] + const useSlots: typeof import('vue')['useSlots'] + const useTemplateRef: typeof import('vue')['useTemplateRef'] + const watch: typeof import('vue')['watch'] + const watchEffect: typeof import('vue')['watchEffect'] + const watchPostEffect: typeof import('vue')['watchPostEffect'] + const watchSyncEffect: typeof import('vue')['watchSyncEffect'] +} +// for type re-export +declare global { + // @ts-ignore + export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' + import('vue') +} diff --git a/sub-government-affairs-service/components.d.ts b/sub-government-affairs-service/components.d.ts index d7376fb..ae4ec06 100644 --- a/sub-government-affairs-service/components.d.ts +++ b/sub-government-affairs-service/components.d.ts @@ -11,6 +11,7 @@ declare module 'vue' { AreaSelect: typeof import('./src/components/AreaSelect/index.vue')['default'] CodeDialog: typeof import('./src/components/code-dialog/index.vue')['default'] FileUploader: typeof import('./src/components/FileUploader/index.vue')['default'] + LandSelect: typeof import('./src/components/LandSelect.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] TableComponent: typeof import('./src/components/tableComponent.vue')['default'] diff --git a/sub-government-affairs-service/src/apis/inputSuppliesApi/demandManage.js b/sub-government-affairs-service/src/apis/inputSuppliesApi/demandManage.js new file mode 100644 index 0000000..5cc8c3c --- /dev/null +++ b/sub-government-affairs-service/src/apis/inputSuppliesApi/demandManage.js @@ -0,0 +1,81 @@ +import request from '@/utils/axios'; + +/* 种子种苗需求-列表 */ +export function getSeedDemandRecords(params) { + return request('/inputGoods/supervise/provenance/page', { + params, + }); +} +/* 种子种苗需求-新增 */ +export function seedDemandSave(data) { + return request('/inputGoods/supervise/provenance/save', { + method: 'POST', + data, + }); +} +/* 种子种苗需求-编辑 */ +export function editSeedDemand(data) { + return request('/inputGoods/supervise/provenance/edit', { + data, + method: 'PUT', + }); +} +/* 种子种苗需求-删除 */ +export function delSeedDemand(ids) { + return request(`/inputGoods/supervise/provenance/delete/${ids}`); +} + +/* 获取详情-通用,传入url和参数 */ +export function getRowDetails({ url, id }) { + return request(`${url}${id}`); +} + +/* 肥料需求-列表 */ +export function getFertilizeDemandRecords(params) { + return request('/inputGoods/supervise/fertilize/page', { + params, + }); +} +/* 肥料需求-新增 */ +export function fertilizeDemandSave(data) { + return request('/inputGoods/supervise/fertilize/save', { + method: 'POST', + data, + }); +} +/* 肥料需求-编辑 */ +export function editFertilizeDemand(data) { + return request('/inputGoods/supervise/fertilize/edit', { + data, + method: 'PUT', + }); +} +/* 肥料需求-删除 */ +export function delFertilizeDemand(ids) { + return request(`/inputGoods/supervise/fertilize/delete/${ids}`); +} + +/* 农药需求-列表 */ +export function getPesticideDemandRecords(params) { + return request('/inputGoods/supervise/pesticide/page', { + params, + }); +} +/* 农药需求-新增 */ +export function pesticideDemandSave(data) { + return request('/inputGoods/supervise/pesticide/save', { + method: 'POST', + data, + }); +} +/* 农药需求-编辑 */ +export function editPesticideDemand(data) { + return request('/inputGoods/supervise/pesticide/edit', { + data, + method: 'PUT', + }); +} +/* 农药需求-删除 */ +export function delPesticideDemand(ids) { + return request(`/inputGoods/supervise/pesticide/delete/${ids}`); +} diff --git a/sub-government-affairs-service/src/apis/inputSuppliesApi/supervisionOfInputs.js b/sub-government-affairs-service/src/apis/inputSuppliesApi/supervisionOfInputs.js index 656c9bd..9e09a89 100644 --- a/sub-government-affairs-service/src/apis/inputSuppliesApi/supervisionOfInputs.js +++ b/sub-government-affairs-service/src/apis/inputSuppliesApi/supervisionOfInputs.js @@ -26,8 +26,8 @@ export function delSeedUseRegulatory(ids) { } /* 获取详情-通用,传入url和参数 */ -export function getRowDetails({ url, id }) { - return request(`${url}${id}`); +export function getRowDetails(url) { + return request(url); } /* 肥料使用监管-列表 */ @@ -79,3 +79,7 @@ export function editPesticideUseRegulatory(data) { export function delPesticideUseRegulatory(ids) { return request(`/inputGoods/supervise/pesticide/delete/${ids}`); } +/* 获取地块列表 */ +export function getLandList() { + return request(`/land-resource/landManage/getLandList`); +} diff --git a/sub-government-affairs-service/src/apis/system/dictType.js b/sub-government-affairs-service/src/apis/system/dictType.js index b95c0eb..947668a 100644 --- a/sub-government-affairs-service/src/apis/system/dictType.js +++ b/sub-government-affairs-service/src/apis/system/dictType.js @@ -56,3 +56,11 @@ export function GetDictType(dictId) { method: 'GET', }); } +/** + * @Title: 类型信息 + */ +export function GetDictTypeInfo(dictId) { + return request(`/system/dict/data/type/${dictId}`, { + method: 'GET', + }); +} diff --git a/sub-government-affairs-service/src/assets/images/input/demand-overview.png b/sub-government-affairs-service/src/assets/images/input/demand-overview.png new file mode 100644 index 0000000..5b9a54f Binary files /dev/null and b/sub-government-affairs-service/src/assets/images/input/demand-overview.png differ diff --git a/sub-government-affairs-service/src/components/LandSelect.vue b/sub-government-affairs-service/src/components/LandSelect.vue new file mode 100644 index 0000000..e4ca053 --- /dev/null +++ b/sub-government-affairs-service/src/components/LandSelect.vue @@ -0,0 +1,240 @@ + + + + + diff --git a/sub-government-affairs-service/src/components/tableComponent.vue b/sub-government-affairs-service/src/components/tableComponent.vue index bebcf19..8ed2c81 100644 --- a/sub-government-affairs-service/src/components/tableComponent.vue +++ b/sub-government-affairs-service/src/components/tableComponent.vue @@ -154,10 +154,16 @@ const props = defineProps({ type: Function, default: () => 'custom-cell', }, + // 设置表格行的主键,获取主键集合时用,默认主键为id rowkey: { type: String, default: '', }, + // 动态控制表格的最低高度,无数据时的最小值 + minHeight: { + type: [String, Number], + default: '300px', + }, }); const emit = defineEmits(['update:currentPage', 'update:pageSize', 'page-change', 'selection-change']); @@ -240,6 +246,11 @@ onBeforeUnmount(() => { height: 100%; /* 关键:继承父容器高度 */ overflow: hidden; /* 防止内容溢出 */ + // 动态控制表格的最低高度,无数据时的最小值 + :deep(.el-scrollbar__wrap) { + min-height: v-bind('props.minHeight'); + } + /* 表格弹性布局 */ :deep(.el-table) { flex: 1; diff --git a/sub-government-affairs-service/src/router/modules/inputSupplies/index.js b/sub-government-affairs-service/src/router/modules/inputSupplies/index.js index f84ffff..4c58789 100644 --- a/sub-government-affairs-service/src/router/modules/inputSupplies/index.js +++ b/sub-government-affairs-service/src/router/modules/inputSupplies/index.js @@ -63,6 +63,38 @@ const inputSuppliesRoutes = [ // component: () => import('@/views/inputSuppliesManage/material/others/index.vue'), // meta: { title: '其他投入品管理', icon: 'TakeawayBox' }, // }, + { + path: '/sub-government-affairs-service/demandManage ', + name: 'demandManage', + redirect: '/sub-government-affairs-service/demandManage/seedRegulation', + meta: { title: '投入品需求管理', icon: 'Connection' }, + children: [ + { + path: '/sub-government-affairs-service/demandManage/demandOverview', + name: 'demandOverview', + component: () => import('@/views/inputSuppliesManage/demandManage/demandOverview.vue'), + meta: { title: '投入品需求概览', icon: '' }, + }, + { + path: '/sub-government-affairs-service/demandManage/seedDemand', + name: 'seedDemand', + component: () => import('@/views/inputSuppliesManage/demandManage/seedDemand.vue'), + meta: { title: '种子种苗需求', icon: '' }, + }, + { + path: '/sub-government-affairs-service/demandManage/fertilizerDemand', + name: 'fertilizerDemand', + component: () => import('@/views/inputSuppliesManage/demandManage/fertilizerDemand.vue'), + meta: { title: '肥料需求', icon: '' }, + }, + { + path: '/sub-government-affairs-service/demandManage/pesticideDemand', + name: 'pesticideDemand', + component: () => import('@/views/inputSuppliesManage/demandManage/pesticideDemand.vue'), + meta: { title: '农药需求', icon: '' }, + }, + ], + }, { path: '/sub-government-affairs-service/supervisionOfInputs ', name: 'supervisionOfInputs', diff --git a/sub-government-affairs-service/src/styles/custom.scss b/sub-government-affairs-service/src/styles/custom.scss index aaf2ae6..bd53f60 100644 --- a/sub-government-affairs-service/src/styles/custom.scss +++ b/sub-government-affairs-service/src/styles/custom.scss @@ -85,6 +85,17 @@ padding-right: 20px; background-color: #fff; } + .table-statistics { + padding: 10px 20px; + margin: 20px 20px 0 20px; + background-color: #e6f7ff; + border: 1px solid #bae7ff; + border-radius: 6px; + font-size: 14px; + span { + font-weight: bold; + } + } .table-cont { padding: 10px 20px; overflow: hidden; @@ -309,15 +320,22 @@ } // 新增商品页面-结束 -// 弹性布局-左对齐-上对齐 +// 弹性布局-左对齐-上对齐(通用) .flex-left-top { display: flex; flex-direction: row; justify-content: flex-start; align-items: flex-start; } +// 弹性布局-左对齐-上对齐(通用) +.flex-left-center { + display: flex; + flex-direction: row; + justify-content: flex-start; + align-items: center; +} -// 溢出隐藏 +// 溢出隐藏(通用) .text-ellipsis { width: 100%; overflow: hidden; @@ -325,6 +343,13 @@ text-overflow: ellipsis; } +.mr-20 { + margin-right: 20px; +} +.mb-20 { + margin-bottom: 20px; +} + // 弹窗表单样式-子元素一行2个列 .dialog-form-container { .dialog-form-title { @@ -346,4 +371,5 @@ right: 0; } } -} \ No newline at end of file +} + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/demandOverview.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/demandOverview.vue new file mode 100644 index 0000000..1269652 --- /dev/null +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/demandOverview.vue @@ -0,0 +1,15 @@ + + + + + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/fertilizerDemand.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/fertilizerDemand.vue new file mode 100644 index 0000000..e779920 --- /dev/null +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/fertilizerDemand.vue @@ -0,0 +1,453 @@ + + + + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/pesticideDemand.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/pesticideDemand.vue new file mode 100644 index 0000000..c94663d --- /dev/null +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/pesticideDemand.vue @@ -0,0 +1,452 @@ + + + + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/seedDemand.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/seedDemand.vue new file mode 100644 index 0000000..77b35d9 --- /dev/null +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/demandManage/seedDemand.vue @@ -0,0 +1,481 @@ + + + + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/subsidyManage/fertilizerSubsidy.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/subsidyManage/fertilizerSubsidy.vue index d444a80..c39a87c 100644 --- a/sub-government-affairs-service/src/views/inputSuppliesManage/subsidyManage/fertilizerSubsidy.vue +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/subsidyManage/fertilizerSubsidy.vue @@ -6,8 +6,8 @@