From 62f7cbbac9b7889ef48696c430374841623bdf60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=83=B3?= <826276471@qq.com> Date: Fri, 21 Mar 2025 16:58:14 +0800 Subject: [PATCH 1/6] =?UTF-8?q?feat:=E6=9A=82=E6=97=B6=E9=9A=90=E8=97=8F?= =?UTF-8?q?=E7=89=A9=E8=B5=84=E8=9E=8D=E5=90=88=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/router/modules/inputSupplies/index.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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 d96b32d..a5a286f 100644 --- a/sub-government-affairs-service/src/router/modules/inputSupplies/index.js +++ b/sub-government-affairs-service/src/router/modules/inputSupplies/index.js @@ -15,12 +15,12 @@ const inputSuppliesRoutes = [ // component: () => import('@/views/inputSuppliesManage/inputDataView/index.vue'), // meta: { title: '投入品资源一张图', icon: 'Document' }, // }, - { - path: '/sub-government-affairs-service/materialManage', - name: 'materialManage', - component: () => import('@/views/inputSuppliesManage/materialManage/index.vue'), - meta: { title: '物资管理融合', icon: 'Document' }, - }, + // { + // path: '/sub-government-affairs-service/materialManage', + // name: 'materialManage', + // component: () => import('@/views/inputSuppliesManage/materialManage/index.vue'), + // meta: { title: '物资管理融合', icon: 'Document' }, + // }, { path: '/sub-government-affairs-service/material', name: 'material', From c3e044f6e902410b9dd782d92c85db907c7ef0bc Mon Sep 17 00:00:00 2001 From: wangzenghua <1048523306@qq.com> Date: Mon, 24 Mar 2025 04:14:57 +0100 Subject: [PATCH 2/6] fix --- .../component/landsManage/index.vue | 4 +- .../views/plantingAndBreeding/base/index.vue | 78 ++++++++++--------- 2 files changed, 45 insertions(+), 37 deletions(-) diff --git a/sub-government-affairs-service/src/views/landManage/component/landsManage/index.vue b/sub-government-affairs-service/src/views/landManage/component/landsManage/index.vue index 8d18cfa..886725c 100644 --- a/sub-government-affairs-service/src/views/landManage/component/landsManage/index.vue +++ b/sub-government-affairs-service/src/views/landManage/component/landsManage/index.vue @@ -611,11 +611,11 @@ function newTree(arr, i) { arr.forEach((v) => { if (i == 0) { v.value = v.id; - v.label = v.prentLandType; + v.label = v.landType; v.disabled = !v.children || !v.children.length; } else { v.value = v.id; - v.label = v.childLandCategory; + v.label = v.landType; } if (v.children) v.children = newTree(v.children, i + 1); }); diff --git a/sub-government-affairs-service/src/views/plantingAndBreeding/base/index.vue b/sub-government-affairs-service/src/views/plantingAndBreeding/base/index.vue index 6df4b11..2517bdb 100644 --- a/sub-government-affairs-service/src/views/plantingAndBreeding/base/index.vue +++ b/sub-government-affairs-service/src/views/plantingAndBreeding/base/index.vue @@ -2,7 +2,7 @@
- + @@ -47,20 +46,21 @@ import { useRouter } from 'vue-router'; import { useApp } from '@/hooks'; import { useUserStore } from '@/store/modules/user'; import { CRUD_OPTIONS } from '@/config'; -import { isEmpty, mockData, sleep } from '@/utils'; +import { isEmpty, mockData, sleep, setDicData } from '@/utils'; +import { getLandsList } from '@/apis/land'; const { VITE_APP_BASE_API, VITE_APP_NAME } = import.meta.env; const app = useApp(); const UserStore = useUserStore(); const router = useRouter(); const crudRef = ref(null); -const landTypeData = ref([ +const treeData = ref([ { label: '基地分类', - id: '0', + id: null, children: [ - { label: '种植基地', id: '01', children: [], pId: '0' }, - { label: '养殖基地', id: '02', children: [], pId: '0' }, + { label: '种植基地', id: '1', children: [], pid: null }, + { label: '养殖基地', id: '2', children: [], pid: null }, ], }, ]); @@ -114,38 +114,31 @@ const state = reactive({ label: '地块名', prop: 'landName', width: 200, - formslot: true, + type: 'select', + props: { + label: 'landName', + value: 'id', + }, + dicUrl: `${VITE_APP_BASE_API}/land-resource/landManage/page?current=1&size=20`, + dicHeaders: { + authorization: UserStore.token, + }, + dicFormatter: (res) => res.data?.records ?? [], + filterable: true, + remote: true, + clearable: true, + remoteMethod: (val) => remoteLandList(val), + change: (val) => selectedChange(val), rules: { required: true, - message: '请输入', + message: '请选择', trigger: 'blur', }, + // addDisplay: true, + // editDisplay: true, + // viewDisplay: false, + // overHidden: true, }, - // { - // label: '地块名', - // prop: 'p2', - // width: 200, - // type: 'select', - // // addDisplay: true, - // // editDisplay: true, - // // viewDisplay: false, - // // 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', - // }, - // overHidden: true, - // }, { label: '区域位置', prop: 'p3', @@ -284,7 +277,7 @@ const loadData = async () => { state.data = mockData( { p1: '耿马镇一号基地', - p2: '耿马镇2025001号地块', + landName: '耿马镇2025001号地块', p3: '耿马傣族佤族自治县/耿马镇', p4: '1000', p5: '张三', @@ -418,4 +411,19 @@ const onDel = (rows = []) => { const rowDel = (row, index, done) => { onDel([row]); }; + +// 远程搜搜 +const remoteLandList = async (val) => { + if (isEmpty(val)) return; + const query = { landName: val, current: 1, size: 20 }; + const res = await getLandsList(query); + if (res.code === 200) { + setDicData(state.options.column, 'landName', res.data.records); + } +}; + +// 选择赋值 +const selectedChange = ({ value, item }) => { + console.log(430, value, item, item.landName, item.address, item.area); +}; From 1f726c42f098bb7bf55f7a2a7de957edc54b6784 Mon Sep 17 00:00:00 2001 From: wangzenghua <1048523306@qq.com> Date: Mon, 24 Mar 2025 09:55:44 +0100 Subject: [PATCH 3/6] =?UTF-8?q?feat:=E6=94=BF=E5=8A=A1=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/custom-echart-radar/index.vue | 92 ++++ .../components/custom-table-tree/index.vue | 75 ++- main/src/components/index.js | 2 + .../src/views/home/index.vue | 453 +++++++++++++++++- 4 files changed, 605 insertions(+), 17 deletions(-) create mode 100644 main/src/components/custom-echart-radar/index.vue diff --git a/main/src/components/custom-echart-radar/index.vue b/main/src/components/custom-echart-radar/index.vue new file mode 100644 index 0000000..3efd034 --- /dev/null +++ b/main/src/components/custom-echart-radar/index.vue @@ -0,0 +1,92 @@ + + diff --git a/main/src/components/custom-table-tree/index.vue b/main/src/components/custom-table-tree/index.vue index 8a971cd..b891761 100644 --- a/main/src/components/custom-table-tree/index.vue +++ b/main/src/components/custom-table-tree/index.vue @@ -1,25 +1,34 @@ + + From 5a83234d4b5a709397fa8c4ee00f8d0119e2b6ee Mon Sep 17 00:00:00 2001 From: wangzenghua <1048523306@qq.com> Date: Mon, 24 Mar 2025 10:05:12 +0100 Subject: [PATCH 4/6] fix --- .../src/views/home/index.vue | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/sub-government-affairs-service/src/views/home/index.vue b/sub-government-affairs-service/src/views/home/index.vue index ba6c91e..5dfcbfd 100644 --- a/sub-government-affairs-service/src/views/home/index.vue +++ b/sub-government-affairs-service/src/views/home/index.vue @@ -6,20 +6,24 @@ 综合数据统计 -

农村人口(万人)

+

农村人口

+ 万人
-

耕地面积(万亩)

+

耕地面积

+ 万亩
-

农业总产值(亿元)

+

农业总产值

+ 亿元

品牌农产品销售情况

+ 亿元
@@ -350,7 +354,7 @@ loadData(); } &-title { - font-size: 18px; + font-size: 19px; font-weight: bold; font-family: '黑体'; color: #333; @@ -367,6 +371,13 @@ loadData(); span { font-size: 30px; + font-weight: bolder; + } + + em { + font-style: normal; + font-size: 14px; + margin-left: 5px; } } From e06c50de65552871c7b1584fd5955d5e88976069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E6=83=B3?= <826276471@qq.com> Date: Mon, 24 Mar 2025 17:21:44 +0800 Subject: [PATCH 5/6] =?UTF-8?q?feat:=E7=89=A9=E8=B5=84=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E5=A4=84=E7=90=86=E5=88=86=E7=B1=BB=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=EF=BC=8C=E9=A1=B5=E9=9D=A2=E8=B0=83=E6=95=B4=EF=BC=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=80=E6=9C=89=E6=8A=95=E5=85=A5=E5=93=81?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E6=8E=A5=E5=8F=A3=E7=BD=91=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/apis/inputSuppliesApi/knowledge.js | 4 +- .../apis/inputSuppliesApi/leaseSupervise.js | 4 +- .../src/apis/inputSuppliesApi/material.js | 8 +- .../src/router/modules/inputSupplies/index.js | 36 ++-- .../common/NumberSelect.vue | 85 ++++++++++ .../inputSuppliesManage/common/SubMenu.vue | 14 +- .../inputSuppliesManage/common/TypeMenu.vue | 2 +- .../inputSuppliesManage/hooks/useBasicInfo.js | 144 +++++++++++----- .../material/pesticide/index.vue | 157 +++++++++++------- .../redBlackRank/common/RankType.vue | 17 +- .../redBlackRank/common/rankCard.vue | 31 ++-- .../redBlackRank/index.vue | 122 +++++++++++++- .../component/landsManage/index.vue | 6 +- 13 files changed, 466 insertions(+), 164 deletions(-) create mode 100644 sub-government-affairs-service/src/views/inputSuppliesManage/common/NumberSelect.vue diff --git a/sub-government-affairs-service/src/apis/inputSuppliesApi/knowledge.js b/sub-government-affairs-service/src/apis/inputSuppliesApi/knowledge.js index 9e39fc1..8d4083b 100644 --- a/sub-government-affairs-service/src/apis/inputSuppliesApi/knowledge.js +++ b/sub-government-affairs-service/src/apis/inputSuppliesApi/knowledge.js @@ -1,13 +1,13 @@ import request from '@/utils/axios'; export function getQuestionList(params) { - return request('/input/knowledge/page', { + return request('/inputGoods/knowledge/page', { params, }); } export function getQuestionReply(data) { - return request('/input/knowledge/reply', { + return request('/inputGoods/knowledge/reply', { data, method: 'PUT', }); diff --git a/sub-government-affairs-service/src/apis/inputSuppliesApi/leaseSupervise.js b/sub-government-affairs-service/src/apis/inputSuppliesApi/leaseSupervise.js index 0560804..624ad5a 100644 --- a/sub-government-affairs-service/src/apis/inputSuppliesApi/leaseSupervise.js +++ b/sub-government-affairs-service/src/apis/inputSuppliesApi/leaseSupervise.js @@ -2,14 +2,14 @@ import request from '@/utils/axios'; /* 租赁列表 */ export function getLeaseSuperviseList(params) { - return request('/input/machineLease/page', { + return request('/inputGoods/machineLease/page', { params, }); } /* 新增租赁 */ export function addLeaseSupervise(data) { - return request('/input/machineLease/save', { + return request('/inputGoods/machineLease/save', { method: 'POST', data, }); diff --git a/sub-government-affairs-service/src/apis/inputSuppliesApi/material.js b/sub-government-affairs-service/src/apis/inputSuppliesApi/material.js index f5578f1..dced738 100644 --- a/sub-government-affairs-service/src/apis/inputSuppliesApi/material.js +++ b/sub-government-affairs-service/src/apis/inputSuppliesApi/material.js @@ -2,7 +2,13 @@ import request from '@/utils/axios'; /* 获取物资类型 */ export function getMaterailTypes(params) { - return request('/input/common/getList', { + return request('/inputGoods/common/getList', { + params, + }); +} +/* 获取农药列表 */ +export function getPesticideList(params) { + return request('/inputGoods/pesticide/page', { params, }); } 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 a5a286f..a1d6854 100644 --- a/sub-government-affairs-service/src/router/modules/inputSupplies/index.js +++ b/sub-government-affairs-service/src/router/modules/inputSupplies/index.js @@ -40,24 +40,24 @@ const inputSuppliesRoutes = [ component: () => import('@/views/inputSuppliesManage/material/fertilizer/index.vue'), meta: { title: '肥料管理', icon: 'Document' }, }, - { - path: '/sub-government-affairs-service/material/ratPoison', - name: 'input-supplies-ratPoison', - component: () => import('@/views/inputSuppliesManage/material/ratPoison/index.vue'), - meta: { title: '兽药管理', icon: 'Document' }, - }, - { - path: '/sub-government-affairs-service/material/farmMachinery', - name: 'input-supplies-farmMachinery', - component: () => import('@/views/inputSuppliesManage/material/farmMachinery/index.vue'), - meta: { title: '农机管理', icon: 'Document' }, - }, - { - path: '/sub-government-affairs-service/material/seed', - name: 'input-supplies-seed', - component: () => import('@/views/inputSuppliesManage/material/seed/index.vue'), - meta: { title: '种源管理', icon: 'Document' }, - }, + // { + // path: '/sub-government-affairs-service/material/ratPoison', + // name: 'input-supplies-ratPoison', + // component: () => import('@/views/inputSuppliesManage/material/ratPoison/index.vue'), + // meta: { title: '兽药管理', icon: 'Document' }, + // }, + // { + // path: '/sub-government-affairs-service/material/farmMachinery', + // name: 'input-supplies-farmMachinery', + // component: () => import('@/views/inputSuppliesManage/material/farmMachinery/index.vue'), + // meta: { title: '农机管理', icon: 'Document' }, + // }, + // { + // path: '/sub-government-affairs-service/material/seed', + // name: 'input-supplies-seed', + // component: () => import('@/views/inputSuppliesManage/material/seed/index.vue'), + // meta: { title: '种源管理', icon: 'Document' }, + // }, ], }, // { diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/common/NumberSelect.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/common/NumberSelect.vue new file mode 100644 index 0000000..ccd468f --- /dev/null +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/common/NumberSelect.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/common/SubMenu.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/common/SubMenu.vue index 4e0c4c0..9333ebb 100644 --- a/sub-government-affairs-service/src/views/inputSuppliesManage/common/SubMenu.vue +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/common/SubMenu.vue @@ -2,16 +2,15 @@ diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/common/TypeMenu.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/common/TypeMenu.vue index bb07ce8..7c32c75 100644 --- a/sub-government-affairs-service/src/views/inputSuppliesManage/common/TypeMenu.vue +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/common/TypeMenu.vue @@ -11,7 +11,7 @@ import SubMenu from './SubMenu.vue'; const emit = defineEmits(['update:type']); -defineProps({ +const props = defineProps({ types: { type: Array, default: () => [ diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/hooks/useBasicInfo.js b/sub-government-affairs-service/src/views/inputSuppliesManage/hooks/useBasicInfo.js index 20d8480..1b66810 100644 --- a/sub-government-affairs-service/src/views/inputSuppliesManage/hooks/useBasicInfo.js +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/hooks/useBasicInfo.js @@ -1,51 +1,103 @@ -import { ref } from 'vue'; +import { ref, onMounted, reactive } from 'vue'; +import inputSuppliesApis from '@/apis/inputSuppliesApi'; +const { getMaterailTypes } = inputSuppliesApis; +export function useBasicInfo(set = {}) { + const loadFinish = ref(false); + const searchCondition = Object.assign( + { + dataType: '', + moduleType: '', + }, + set + ); + /* ------ data ------ */ + // #region + const materialTypes = reactive({ + 1: [{ value: '0', label: '全部' }], + 2: [{ value: '0', label: '全部' }], + 3: [{ value: '0', label: '全部' }], + 4: [{ value: '0', label: '全部' }], + 5: [{ value: '0', label: '全部' }], + }); + const materialTwoLevel = ref({}); -export function useBasicInfo() { - const pesticideData = ref([ - { label: '全部', value: '0' }, - { - label: '防治对象', - value: '1', - children: [ - { label: '杀虫剂', value: '1-1' }, - { label: '除草剂', value: '1-2' }, - { label: '杀菌剂', value: '1-3' }, - { label: '杀螨剂', value: '1-4' }, - { label: '生物农药', value: '1-5' }, - { label: '植物生长调节剂', value: '1-6' }, - ], - }, - { - label: '化学成分', - value: '2', - children: [ - { label: '无机农药', pid: '2', value: '2-1' }, - { label: '生物农药', pid: '2', value: '2-2' }, - { - label: '有机农药', - pid: '2', - value: '2-3', - children: [ - { label: '天然有机农药', pid: '2-3', value: '2-3-1' }, - { label: '人工合成农药', pid: '2-3', value: '2-3-2' }, - ], - }, - ], - }, - { - label: '加工剂型', - value: '3', - children: [ - { label: '可湿性粉剂', value: '3-1' }, - { label: '可溶性粉剂', value: '3-2' }, - { label: '乳剂', value: '3-3' }, - { label: '颗粒剂', value: '4-4' }, - { label: '缓释剂', value: '5-5' }, - { label: '烟剂', value: '6-6' }, - ], - }, + /* ------ 农药 ------ */ + // #region + const pesticideTypes = reactive({}); + const goodsUnitOptions = reactive([ + { value: '1', label: 'ml/瓶' }, + { value: '2', label: 'mg/盒' }, + { value: '3', label: 'kg/袋' }, ]); + const useDosageUnit = reactive([ + { value: '1', label: '/亩' }, + { value: '2', label: '/平方米' }, + { value: '3', label: '/株' }, + ]); + // #endregion + + // #endregion + async function getmaterialType(_set = {}) { + let params = Object.assign(searchCondition, _set); + let res = await getMaterailTypes(params); + console.log('two --- ', res); + if (res && res?.code == 200) { + res.data.forEach((item) => { + const { moduleType, children } = item; + materialTypes[moduleType].push(...handleTypes(children)); + handleTwoLevel(); + }); + } + loadFinish.value = true; + } + function handleTypes(arr) { + arr.forEach((item) => { + item.value = item.id; + item.label = item.dataName; + if (item.children.length > 0) { + item.children = handleTypes(item.children); + } + }); + return arr; + } + function handleTwoLevel() { + for (let key in materialTypes) { + materialTwoLevel.value[key] = {}; + materialTypes[key].forEach((v) => { + if (v.value != 0) { + materialTwoLevel.value[key][v.dataType] = v.children; + } + }); + } + } + function filterTypes(_set = {}) { + let filterType = Object.assign( + { + dataType: '1', + moduleType: '1', + }, + _set + ); + let all = materialTypes[filterType.moduleType]; + let _arr = []; + all.forEach((item) => { + console.log('item', item); + if (filterType.dataType == item.dataType) { + _arr = item.children; + } + }); + return _arr; + } + + onMounted(getmaterialType); + return { - pesticideData, + loadFinish, + materialTypes, + materialTwoLevel, + goodsUnitOptions, + useDosageUnit, + getmaterialType, + filterTypes, }; } diff --git a/sub-government-affairs-service/src/views/inputSuppliesManage/material/pesticide/index.vue b/sub-government-affairs-service/src/views/inputSuppliesManage/material/pesticide/index.vue index 884818a..078c6c1 100644 --- a/sub-government-affairs-service/src/views/inputSuppliesManage/material/pesticide/index.vue +++ b/sub-government-affairs-service/src/views/inputSuppliesManage/material/pesticide/index.vue @@ -1,7 +1,7 @@ -